home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / source / xdme_1.84_src.lha / XDME / Src / Var / SPC.pre < prev    next >
Encoding:
Text File  |  1994-12-04  |  17.9 KB  |  579 lines

  1.  
  2. #ifdef SPC_VAR
  3.  
  4. // __types += %{ vartree; %};
  5.  
  6. global SVAR = %{
  7. // ^^^^ we have some fixed qualifiers ...
  8. // GLOBAL/PROJECT/TEMPORARY and (CONST|HIDDEN)=INTERNAL
  9. // but exept for const and hidden they are ignored ...
  10.  
  11.  
  12.     // ---- this is the list of all possible types in this tree;
  13.     //        their bodies represent the names that have special
  14.     //        meanings and so shall be treated case insenitive
  15.     //        (I'll try to place the defaults into that types-definition, too)
  16.     //        ahhh - types are also treated case-insensitive
  17.     __TYPES = %{
  18.     // ---- MACRO bits - Flags that already have a macro interface!
  19.     MBIT   = %{
  20.         REFERENCE;
  21.         SET = %[ SETF_$(@TOUPPER@$(REFERENCE)) (Ep, test_arg (value, GETF_$(@TOUPPER@$(REFERENCE)) (Ep))); %];
  22.         GET = %[ value = GETF_$(@TOUPPER@$(REFERENCE)) (Ep)? "1": "0"; %];
  23.         //SAY = %[ warn("%s switched %s", $(@IF@!?NICKNAME@spc_names[_I_$(NAME)_])$(@IF@?NICKNAME@$(NICKNAME)), GETF_$(@TOUPPER@$(REFERENCE)) (Ep)? __on: __off); %];
  24.         SAY = %[ warn("%s switched %s", spc_names[_I_$(NAME)_], GETF_$(@TOUPPER@$(REFERENCE)) (Ep)? __on: __off); %];
  25.     %};
  26.  
  27.     // ---- for the case, a flag has not (yet) got its macro interface
  28.     BIT    = %{
  29.         REFERENCE;
  30.         SET = %[ $(REFERENCE) = test_arg (value, $(REFERENCE)); %];
  31.         GET = %[ value = $(REFERENCE)? "1": "0"; %];
  32.         //SAY = %[ warn("%s switched %s", $(@IF@!$(?NICKNAME)@spc_names[_I_$(NAME)_])$(@IF@?NICKNAME@$(NICKNAME)), $(REFERENCE)? __on: __off); %];
  33.         SAY = %[ warn("%s switched %s", spc_names[_I_$(NAME)_], $(REFERENCE)? __on: __off); %];
  34.     %};
  35.  
  36.     // ---- SEMI - bits: get as bit, set as Functions
  37.     SBIT   = %{
  38.         REFERENCE;
  39.         SETTRUE;
  40.         SETFALSE;
  41.         GET = %[ value = GETF_$(@TOUPPER@$(REFERENCE)) (Ep)? "1": "0"; %];
  42.         SET = %[
  43.         array[0] = test_arg(value, GETF_$(@TOUPPER@$(REFERENCE)) (Ep));
  44.         if (array[0] != GETF_$(@TOUPPER@$(REFERENCE)) (Ep))
  45.             if (array[0]) $(SETTRUE)
  46.             else      $(SETFALSE) %];
  47.         //SAY = %[ warn("%s switched %s", $(@IF@!$(?NICKNAME)@spc_names[_I_$(NAME)_])$(@IF@?NICKNAME@$(NICKNAME)), GETF_$(@TOUPPER@$(REFERENCE)) (Ep)? __on: __off); %];
  48.         SAY = %[ warn("%s switched %s", spc_names[_I_$(NAME)_], GETF_$(@TOUPPER@$(REFERENCE)) (Ep)? __on: __off); %];
  49.     %};
  50.  
  51.     // ---- handling for numeric variables
  52.     INT    = %{
  53.         REFERENCE;
  54.         SET = %[ $(REFERENCE) = atol(value); %];
  55.         GET = %[ value = ltostr((long)$(REFERENCE)); %];
  56.         SAY = %[ warn("%s set to %d", spc_names[_I_$(NAME)_], $(REFERENCE)); %];
  57.     %};
  58.  
  59.     // ---- static strings and strings, that shall not be reallocated
  60.     STR    = %{
  61.         REFERENCE;
  62.         SET = %[ strcpy ($(REFERENCE), value); %];
  63.         GET = %[ value = $(REFERENCE); %];
  64.         SAY = %[ warn("%s set to %s", spc_names[_I_$(NAME)_], $(REFERENCE)); %];
  65.     %};
  66.  
  67.     // ---- dyanimcally allocated strings (using strdup/malloc/free)
  68.     STRPTR = %{
  69.         REFERENCE;
  70.         SET = %[ $(REFERENCE) = strrep ($(REFERENCE), value); %];
  71.         GET = %[ value = $(REFERENCE); %];
  72.         SAY = %[ warn("%s set to %d", spc_names[_I_$(NAME)_], $(REFERENCE)); %];
  73.     %};
  74.  
  75.     // ---- for the case, we need complex functions (e.g. to parse the value)
  76.     //    the KILLSTACK is used to show, that a certain item shall be
  77.     //    respected in the stack-cleanup function
  78.     FNC    = %{
  79.         KILLSTACK;
  80.         SAY = "return 0;";
  81.     %};
  82.  
  83.     %};
  84.  
  85.     // ---- that is an additional list of fixed names, which shall
  86.     //        be treated case insensitive; it is common to all types
  87.     __NEEDED = %{ SET; GET; REFERENCE; %};
  88.  
  89.     // ---- following are default entries for all types, as far as
  90.     //        each type has any default entries.
  91.  
  92. //    MBIT __default = %{
  93. //    %};
  94. //    BIT __default = %{
  95. //    %};
  96. //    INT __default = %{
  97. //    %};
  98. //    STR __default = %{
  99. //    %};
  100. //    STRPTR __default = %{
  101. //    %};
  102. //    SBIT __default = %{
  103. //    %};
  104.  
  105.  
  106.     // ---- entries for the pens ...
  107.  
  108.     int fgpen = %{ reference =    "TEXT_FPEN(Ep)"; %};
  109.     int bgpen = %{ reference =    "TEXT_BPEN(Ep)"; %};
  110.     int hgpen = %{ reference = "BLOCK_FPEN(Ep)"; %};
  111.     int bbpen = %{ reference = "BLOCK_BPEN(Ep)"; %};
  112.     int tfpen = %{ reference = "TITLE_FPEN(Ep)"; %};
  113.     int tbpen = %{ reference = "TITLE_BPEN(Ep)"; %};
  114.  
  115.     // ---- entries for the normal flags ...
  116.  
  117.     mbit activetofront        = %{ reference = "activatetofront"; %};
  118.     mbit autoindent        = %{ reference = "autoindent";  %};
  119.     mbit autosplit        = %{ reference = "autosplit";   %};
  120.     mbit autounblock        = %{ reference = "autounblock"; %};
  121.     mbit debug            = %{ reference = "debug";       %};
  122.     mbit dobackup        = %{ reference = "doback";      %};
  123.     mbit followcursor        = %{ reference = "FollowCursor"; %};
  124.     mbit globalsearch        = %{ reference = "globalsearch"; %};
  125.     mbit iconactive        = %{ reference = "iconactive";  %};
  126.     mbit ignorecase        = %{ reference = "ignorecase";  %};
  127.     mbit insertmode        = %{ reference = "insertmode";  %};
  128.     mbit modified        = %{ reference = "modified";    %};
  129.     mbit nicepaging        = %{ reference = "nicepaging";  %};
  130.     mbit norequest        = %{ reference = "NoRequest";   %};
  131.     mbit saveicons        = %{ reference = "Saveicons";   %};
  132.     mbit savetabs        = %{ reference = "Savetabs";    %};
  133.     mbit shortlines        = %{ reference = "SLine";       %};
  134.     mbit showtitle        = %{ reference = "Showtitle";   %};
  135.     mbit simpletabs        = %{ reference = "SimpleTabs";  %};
  136.     mbit sourcebreaks        = %{ reference = "SourceBreaks"; %};
  137.     mbit viewmode        = %{ reference = "viewmode";    %};
  138.     mbit windowcycling        = %{ reference = "Windowcycling"; %};
  139.     mbit windowtitles        = %{ reference = "WindowTitles"; %};
  140.     mbit wordwrap        = %{ reference = "wordwrap";    %};
  141.     const mbit comlinemode  = %{ reference = "Comlinemode"; %};
  142.     project sbit iconmode   = %{ reference = "iconmode"; settrue = "iconify ();"; setfalse = "uniconify ();"; %};
  143.  
  144.  
  145.     // ---- Pardon - references do currently not work
  146.     // bit intuitiontitles = windowtitles;
  147.  
  148.     // ---- normal integers
  149.  
  150.     const project int ascii    = %{ reference = "Current[Ep->column]"; %};
  151.     const project int colno    = %{ reference = "Ep->column + 1";      %};
  152.     const project int lineno    = %{ reference = "Ep->line + 1";        %};
  153.     const project int numlines    = %{ reference = "Ep->lines";           %}; // 02-11-94
  154.     project int margin        = %{ reference = "Ep->config.margin";   %};
  155.     project int parcol        = %{ reference = "Ep->config.wwcol";    %};
  156.     project int tabstop     = %{ reference = "Ep->config.tabstop";  %};
  157.  
  158.     // ---- strings
  159.  
  160.     strptr scanf    = %{ reference = "String";   %};
  161.     str findstr     = %{ reference = "Fstr";     %};
  162.     str fname        = %{ reference = "Ep->name"; %};
  163.     str repstr        = %{ reference = "Rstr";     %};
  164.     const str version    = %{ reference = "version";  %};
  165.     const str rexxport    = %{ reference = "RexxPortName"; %};
  166.     str reqpattern    = %{ reference = "pattern"; %};
  167.     str icontitle    = %{ reference = "icontitle_pattern"; %};
  168.     str title        = %{ reference = "title_pattern"; %};
  169.  
  170.  
  171.     // ---- where do end variables and where do start functions ?
  172.  
  173.     const project fnc currentline   = %{ get = "value = Current"; set = %[ strcpy (Current, value); Clen = strlen(Current); while (Clen < Ep->column) Current[Clen++] = ' '; Current[Clen] = '\0'; %]; %};
  174.     const project fnc restofline    = %{ get = "value = Current + Ep->column"; %};
  175.     const project fnc currentword   = %{ get = "value = current_word()"; %};
  176.     const project fnc recentword    = %{ get = "value = recent_word()"; %};
  177.     const project fnc firstnb        = %{ get = "value = ltostr(firstns (Current) + 1);" %};
  178.  
  179.  
  180.  
  181.     //
  182.     //    COPY OF THE ENTRIES IN `Src/Mod/*.c'
  183.     //
  184.  
  185.     bit       infixmode      = %{ reference = "MathInfix";          %};
  186.     const str reqresult      = %{ reference = "ReqString";          %};
  187.     strptr    cmdshellname     = %{ reference = "CMDSH_FileName";     %};
  188.     strptr    cmdshellprompt     = %{ reference = "CMDSH_Prompt";       %};
  189.     bit       errorsoncmdshell     = %{ reference = "CMDSH_ErrorsOut";    %};
  190.     bit       warningsoncmdshell = %{ reference = "CMDSH_WarningsOut";  %};
  191.     sbit      cmdshell         = %{ reference = "CMDSH_Active"; settrue = "do_opencmdshell();"; setfalse = "do_closecmdshell();"; %};
  192.     sbit      appicon         = %{ reference = "APIC_Active";  settrue = "do_apicshow();";     setfalse = "do_apichide();";      %};
  193.     strptr    appicontitle     = %{ reference = "APIC_IconTitle";     %};
  194.     strptr    appiconname     = %{ reference = "APIC_IconFile";      %};
  195.     strptr    appicondropaction  = %{ reference = "APIC_ActionDrop";    %};
  196.     strptr    appiconclickaction = %{ reference = "APIC_ActionDblClick"; %};
  197.     strptr    gtbformat      = %{ reference = "GTB_Format";         %};
  198.  
  199.     const project int txtfontsize= %{ reference = "(Ep->font? Ep->font->tf_YSize: (Ysize - LineDistance))"; %};
  200.     const project str txtfontname= %{ reference = "(Ep->font? Ep->font->tf_Message.mn_Node.ln_Name: \"*Defaultfont*\")"; %};
  201.     //const project str txtfontname= %{ reference = "(Ep->font? Ep->font: Ep->win->RPort->Font)->tf_Message.mn_Node.ln_Name"; %};
  202.  
  203.     int    menufontsize  = %{ reference = "menufont_ta.ta_YSize";
  204.         SET = %[
  205.         menufont_ta.ta_YSize = atol(value);
  206.         verify_menufont();
  207.         %];
  208.     %};
  209.     strptr menufontname  = %{ reference = "menufont_ta.ta_Name";
  210.         SET = %[
  211.         $(REFERENCE) = strrep ($(REFERENCE), value);
  212.         verify_menufont();
  213.         %];
  214.     %};
  215.  
  216.  
  217.     //    ... So, the rest of this file represents only
  218.     //    about 13 additional Functional variables
  219.     //
  220.  
  221.  
  222.     //temporary
  223.     const fnc itemcheck = %{
  224.     get = %[ if (active_menu)
  225.         value = (((struct MenuItem *)active_menu)->Flags & CHECKED) ? "1": "0";
  226.     %];
  227.     set = %[ if (active_menu) {
  228.         UWORD *flags, fv;;
  229.         fv = *(flags = &(((struct MenuItem *)active_menu)->Flags);
  230.         *flags = (fv & ~CHECKED) | test_arg(value, (fv & CHECKED) ? 1: 0);
  231.         if (fv != *flags)
  232.             menu_strip (currentmenu(), Ep->win);
  233.         } /* if */
  234.     %];
  235.     %};
  236.  
  237.     // easy access to the prev nonblank line, if s.o. (me) wants to have fancy indenting makros
  238.     project const fnc prevnbline = %{
  239.     get = %[{
  240.         int i = Ep->line;
  241.         while ((--i >= 0) && !GETTEXT(Ep,i)[0]);
  242.         value = (i >= 0)? GETTEXT(Ep,i): "";
  243.     }%];
  244.     %};
  245.  
  246.     // control over the used Keytable
  247.     project fnc keytable = %{
  248.     get = %[
  249.         if ((value = (void*)currenthash()))
  250.         value = ((struct Node *)value)->ln_Name;
  251.     %];
  252.     set = %[
  253.         av[1] = value;
  254.         do_use_keytable();
  255.         av[1] = av1_bak;
  256.     %];
  257.     %};
  258.  
  259.     // control over the used menustrip
  260.     project fnc menustrip = %{
  261.     get = %[
  262.         if ((value = (void *)currentmenu()))
  263.         value = ((struct Node *)value)->ln_Name;
  264.     %];
  265.     set = %[
  266.         av[1] = value;
  267.         do_use_menustrip();
  268.         av[1] = av1_bak;
  269.     %];
  270.     %};
  271.  
  272.     // communtication w/ arexx
  273.     fnc rxresult = %{
  274.     get = %[ value = get_rexx_result(); %];
  275.     set = %[{
  276.         av[1] = value;
  277.         put_rexx_result();
  278.         av[1] = av1_bak;
  279.     }%];
  280.     %};
  281.  
  282.     // control over the file's path and name
  283.     project fnc filename = %{
  284.     get = %[ if (getpathto(Ep->dirlock, Ep->name, tmp_buffer))
  285.         value = tmp_buffer;
  286.     %];
  287.     set = %[
  288.         av[1] = value;
  289.         do_chfilename();
  290.         av[1] = av1_bak;
  291.     %];
  292.     %};
  293.  
  294.     // control over file's path
  295.     project fnc currentdir = %{
  296.     get = %[ if (NameFromLock(Ep->dirlock, tmp_buffer, sizeof(tmp_buffer)))
  297.         value = tmp_buffer;
  298.     %];
  299.     set = %[
  300.         av[1] = value;
  301.         do_cd();
  302.         av[1] = av1_bak;
  303.     %];
  304.     %};
  305.  
  306.  
  307.  
  308.  
  309.     //
  310.     //    COPY OF THE ENTRIES IN CMD.c
  311.     //    due to the following functions, we can drop the item-stack
  312.     //
  313.  
  314.  
  315.  
  316.     FNC project pens = %{
  317.     set = %[
  318.         sscanf (value, "%ld %ld %ld %ld %ld %ld", &array[0], &array[1], &array[2], &array[3], &array[4], &array[5]);
  319.  
  320.         TEXT_FPEN(Ep) = array[0];
  321.         TEXT_BPEN(Ep) = array[1];
  322.         BLOCK_FPEN(Ep) = array[2];
  323.         BLOCK_BPEN(Ep) = array[3];
  324.         TITLE_FPEN(Ep) = array[4];
  325.         TITLE_BPEN(Ep) = array[5];
  326.  
  327.         if (!GETF_ICONMODE(Ep))
  328.         text_redisplay ();
  329.  
  330.         SETF_MFORCETITLE(Ep,1);
  331.     %];
  332.     get = %[
  333.         array[0] =    TEXT_FPEN(Ep);
  334.         array[1] =    TEXT_BPEN(Ep);
  335.         array[2] = BLOCK_FPEN(Ep);
  336.         array[3] = BLOCK_BPEN(Ep);
  337.         array[4] = TITLE_FPEN(Ep);
  338.         array[5] = TITLE_BPEN(Ep);
  339.  
  340.         sprintf (tmp_buffer, "%ld %ld %ld %ld %ld %ld", array[0], array[1], array[2], array[3], array[4], array[5]);
  341.         value = tmp_buffer;
  342.     %];
  343.     %};
  344.  
  345.     FNC project icon = %{
  346.     set = %[
  347.         sscanf (value, "%ld %ld", &array[0], &array[1]);
  348.  
  349.         Ep->config.iwinx      = array[0];
  350.         Ep->config.iwiny      = array[1];
  351.  
  352.         if (GETF_ICONMODE(Ep)) {
  353.         MoveWindow (Ep->win, Ep->config.winx - Ep->win->LeftEdge,
  354.                     Ep->config.winy - Ep->win->TopEdge);
  355.         } /* if */
  356.     %];
  357.     get = %[
  358.         if (GETF_ICONMODE(Ep)) {
  359.         array[0] = Ep->config.iwinx;
  360.         array[1] = Ep->config.iwiny;
  361.         } else {
  362.         array[0] = Ep->win->LeftEdge;
  363.         array[1] = Ep->win->TopEdge;
  364.         } /* if */
  365.         sprintf (tmp_buffer, "%ld %ld", array[0], array[1]);
  366.         value = tmp_buffer;
  367.     %];
  368.     %};
  369.  
  370.     FNC project window = %{
  371.     set = %[
  372.         sscanf (value, "%ld %ld %ld %ld", &array[0], &array[1], &array[2], &array[3]);
  373.  
  374.         Ep->config.winx     = array[0];
  375.         Ep->config.winy     = array[1];
  376.         Ep->config.winwidth  = array[2];
  377.         Ep->config.winheight = array[3];
  378.  
  379.         if (!GETF_ICONMODE(Ep)) {
  380.         MoveWindow (Ep->win, Ep->config.winx - Ep->win->LeftEdge,
  381.                     Ep->config.winy - Ep->win->TopEdge);
  382.         SizeWindow (Ep->win, Ep->config.winwidth  - Ep->win->Width,
  383.                     Ep->config.winheight - Ep->win->Height);
  384.         } /* if */
  385.     %];
  386.     get = %[
  387.         if (!GETF_ICONMODE(Ep)) {
  388.         array[0] = Ep->config.winx;
  389.         array[1] = Ep->config.winy;
  390.         array[2] = Ep->config.winwidth;
  391.         array[3] = Ep->config.winheight;
  392.         } else {
  393.         array[0] = Ep->win->LeftEdge;
  394.         array[1] = Ep->win->TopEdge;
  395.         array[2] = Ep->win->Width;
  396.         array[3] = Ep->win->Height;
  397.         } /* if */
  398.  
  399.         sprintf (tmp_buffer, "%d %d %d %d", array[0], array[1], array[2], array[3]);
  400.         value = tmp_buffer;
  401.     %];
  402.     %};
  403.  
  404.     fnc ed = %{
  405.     killstack = %[ check = strtol(value, &value, 16); %];
  406.     set = %[
  407.         if (VSTK_Internal)
  408.         sscanf (value, "%08lx", &array[0]);
  409.         else {
  410.         array[0] = (long)finded (value, 0);
  411.         } /* if */
  412.  
  413.     /* /* **** MISSING SAFETY CHECK!!!! **** */
  414.  
  415.         //text_cursor (1);
  416.         switch_ed ((void *)array[0]);
  417.         //text_cursor (0);
  418.  
  419.         ActivateWindow (Ep->win);                              /// FIX
  420.         if (GETF_ACTIVATETOFRONT(Ep))
  421.         WindowToFront(Ep->win);
  422.         //text_load ();
  423.         //text_adjust (FALSE);
  424.     //////////////////////////////////////////////////////////////////
  425.     //    For an unknown reason, SETting eds is not performed success-   FIXED
  426.     //    fully; this is a bug in DO_POP, where I got the code from      FIXED
  427.     //////////////////////////////////////////////////////////////////
  428.     %];
  429.     get = %[
  430.         if (VSTK_Internal)
  431.         sprintf (value = tmp_buffer, "%08lx", Ep);
  432.         else
  433.         value =  ((struct Node *)Ep)->ln_Name;
  434.     %];
  435.     %};
  436.  
  437.     FNC global pos = %{
  438.     killstack = %[ check = strtol(value, &value, 16); %];
  439.     set = %[{
  440.         struct TextMarker pos;
  441.         if (VSTK_Internal)
  442.         sscanf (value, "%08lx %08lx %08lx", &array[0],  &array[1], &array[2]);
  443.         else {
  444.         sscanf (value, "%s %ld %ld", tmp_buffer, &array[1], &array[2]);
  445.         array[0] = (long)finded (tmp_buffer, 0);
  446.         } /* if */
  447.  
  448.         pos.ep    = (void*)array[0];
  449.         pos.line    = array[1];
  450.         pos.column    = array[2];
  451.  
  452.     /* /* **** MISSING SAFETY CHECK!!!! **** */
  453.  
  454.         text_sync ();
  455.  
  456.         text_cursor (1);
  457.         switch_ed (pos.ep);
  458.         text_cursor (0);
  459.  
  460.         if (IntuitionBase->ActiveWindow != Ep->win) {
  461.         if (GETF_ACTIVATETOFRONT(Ep))
  462.             WindowToFront (Ep->win);
  463.         ActivateWindow (Ep->win);
  464.         }
  465.  
  466.         if (pos.line >= Ep->lines)
  467.         Ep->line = Ep->lines - 1;
  468.         else
  469.         Ep->line = pos.line;
  470.  
  471.         Ep->column = pos.column;
  472.  
  473.         text_load ();
  474.         text_adjust (FALSE);
  475.     }%];
  476.     get = %[
  477.         if (VSTK_Internal)
  478.         sprintf (tmp_buffer, "%08lx %08lx %08lx", (long)Ep, (long)Ep->line, (long)Ep->column);
  479.         else
  480.         sprintf (tmp_buffer, "%s %ld %ld", ((struct Node *)Ep)->ln_Name, (long)Ep->line, (long)Ep->column);
  481.         value = tmp_buffer;
  482.     %];
  483.     %};
  484.  
  485.     FNC global block = %{
  486.     killstack = %[ check = strtol(value, &value, 16); %];
  487.     set = %[{
  488.         Block block;
  489.         //int type = ActualBlock.type;
  490.  
  491.         if (VSTK_Internal)
  492.         sscanf (value, "%08lx %lx %08lx %08lx %08lx %08lx", &array[0], &array[1], &array[2], &array[3], &array[4], &array[5]);
  493.         else {
  494.         sscanf (value, "%s %ld %ld %ld %ld %ld", tmp_buffer, &array[1], &array[2], &array[3], &array[4], &array[5]);
  495.         array[0] = (long)finded (tmp_buffer, 0);
  496.         } /* if */
  497.  
  498.         block.ep           = (void *)array[0];
  499.         block.type           = array[1];
  500.         block.start_line   = array[2];
  501.         block.start_column = array[3];
  502.         block.end_line     = array[4];
  503.         block.end_column   = array[5];
  504.  
  505.     /* /* **** MISSING SAFETY CHECK!!!! **** */
  506.  
  507.         //do_unblock();
  508.         set_block (&block);
  509.  
  510.         if (!GETF_ICONMODE(ActualBlock.ep))
  511.         //if (ActualBlock.type == type)
  512.         //    text_redrawblock (1);
  513.         //else
  514.         //    text_redisplay ();
  515.         displayblock(1);
  516.     //////////////////////////////////////////////////////////////////
  517.     //    For an unknown reason, SETting non-blocks leads to redraw    FIXED
  518.     //    problems; this is a bug in DO_POP, where I got the code from    FIXED
  519.     //////////////////////////////////////////////////////////////////
  520.     }%];
  521.     get = %[{
  522.         Block block;
  523.         get_block(&block);
  524.         if (VSTK_Internal)
  525.         sprintf (tmp_buffer, "%08lx %lx %08lx %08lx %08lx %08lx",
  526.                     (long)block.ep,
  527.                     (long)block.type,
  528.                     (long)block.start_line,
  529.                     (long)block.start_column,
  530.                     (long)block.end_line,
  531.                     (long)block.end_column);
  532.         else
  533.         sprintf (tmp_buffer, "%s %ld %ld %ld %ld %ld",
  534.                     (long)((struct Node *)block.ep)->ln_Name,
  535.                     (long)block.type,
  536.                     (long)block.start_line,
  537.                     (long)block.start_column,
  538.                     (long)block.end_line,
  539.                     (long)block.end_column);
  540.         value = tmp_buffer;
  541.     }%];
  542.     %};
  543.  
  544.  
  545. %}; // vartree SpecialVars
  546.  
  547. #endif
  548. //#endif
  549. //#if 0
  550.  
  551.  
  552.  
  553.  
  554. //fnc qualifiers
  555.  
  556. //we would need a list_2_str ... better list_2_dstr
  557. //const fnc refpaths
  558. //const fnc textnames
  559.  
  560. // const int win-x/y/width/height
  561. // const int iwin-x/y
  562. // int asl-left/top/width/height
  563. // fnc font
  564. // fnc windowsize
  565. // int taskpri
  566.  
  567. // useful would be:
  568. // str tabline
  569. // const int tableft
  570. // const int tabright
  571. // const bit istab
  572. // str delimiters
  573. // bit first_click_activates_window
  574. // int number_max_click -> 1-4
  575. // int dble_click_treshold
  576.  
  577.  
  578.  
  579.